#ifndef _LINKQUEUE_H_
#define _LINKQUEUE_H_

#include "DoubleLinkList.h"
struct LinkQueue;
typedef struct LinkQueue LQueue;

LQueue *InitLQueue();

//入队列
void QPush(LQueue *q, ElementType element);
//出队列
void QPop(LQueue *q);
//返回队头元素
ElementType *GetQFront(LQueue *q);

//队列为空
bool IsQueueEmpty(LQueue *q);
//获取队列数量
int GetQueueLen(LQueue *q);

void ClearLQueue(LQueue *q, void (*clearPtr)(ElementType));

void TravelLQueue(LQueue *q, void (*funcPtr)(ElementType));
#endif